home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac-Source 1994 July
/
Mac-Source_July_1994.iso
/
C and C++
/
Libraries
/
TurboTCP 1.0.1
/
TurboTCP.version.note
< prev
Wrap
Text File
|
1994-01-19
|
11KB
|
231 lines
/*
** TurboTCP support library
**
** Copyright © 1993, FrostByte Design / Eric Scouten
**
** Version history
*/
Current version: 1.0.1
Version history:
--------------
1.0d1 (7 June 93)
* initial release
1.0d2 (9 June 93)
* created CTCPDriver object to handle primary TCP functions (checking for
MacTCP, fetching local IP address)
* changed inheritance of CTCPStream from CCollaborator to CObject
since CCollaborator caused problems disposing a stream, and
CCollaborator methods were unnecessary
* fixed bugs in CTCPStream::Dispose and DelayDispose
* fixed bugs in CTCPAsyncCall::Dispose
* added minimal support for Telnet protocol to CTelnetDoc
1.0d3 (11 June 93)
* renamed to TurboTCP library
* major structural change: separated core functions into “TurboTCP base classes”
and TCL support to "TurboTCP adv classes"
* removed use of CCollaborator::BroadcastChange() mechanism
* created new CTCPSessionDoc class to cover typical session behavior
1.0d4 (16 June 93)
* added TCP resolver functions (uses source file “dnr.c” from MacTCP
Dev Kit, with several mods)
* added list of TCP streams to CTCPDriver; this allows the driver to
dispose of all streams that were accidentally not disposed during
program operation
* changed “inherited::” method calls to specific class references (BRB)
* changed class definitions to “class ___ : public ___” notation
to support TC 6.0 (BRB)
* added typecasts to support TC 6.0’s stricter typechecking (BRB)
* changed CTCPStream::Dispose to wait until TCP stream is terminated
before disposing itself
* DemoTelnet: implemented dialog box to allow user to choose host
(CTelnetDoc::NewFile)
1.0d5 (17 June 93)
* updated projects to run under TC 6.0
* added completion routine for TCPRcv call (CTCPAsyncCall::Dispatch)
* changed completion/notification routines so that Failures are trapped
and the call chain continues (CTCPAsyncCall::ProcessCompletion,
CTCPResolver::ProcessNotify, CTCPStream::ProcessNotify)
* changed CTCPDriver::ProcessNetEvent to re-issue the Failure which
occured during the above completion/notification routines
1.0d6 (18 June 93)
* fixed bug in CTCPResolver which allowed the resolver object
to be disposed while ProcessNotify was still running
1.0d7 (30 June 93)
* renamed source files to “.cp” notation; separated all in-line assembly
to separate “.asm” files for compatibility with SC++ 6.0
* moved ProcessNetEvents to TCPAsync.asm (no longer a method
of CTCPDriver)
* separated interrupt-level code to end of each source file;
hooks in place for using Think Profiler
* fixed incorrect typecasts (byte instead of unsigned short) in
CTCPStream::NoCopyRcv & CTCPStream::Receive
1.0d8 (5 July 93)
* separated TCPAsync.asm into separate .asm and .cp files for SC++
compatibility (BRB)
* fixed bug in CTCPStreamForDoc::SendCString which treated
strings as Pascal strings
* fixed bug in CTCPStream::BfrReturn which allowed buffers to
be returned after the session closed
* deleted “TurboTCP DNR classes” folder; moved items to
“base classes” and “doc classes” (renamed) folders
* filled in CTCPSessionDoc::HandleSendFailed and HandleTerminated;
both methods now report error messages and ask for responses
* changed error handling in CTCPStream; all methods now call the
HandleTCPError, HandleOpenFailed, or HandleSendFailed methods
instead of FailOSError (except for initialization)
* changed CTCPSessionDoc to allow window to stay open when the
session is closed
1.0d9 (9 July 93)
* fixed bug in CTCPStreamForDoc::SendCString which treated C
strings as Pascal strings; then got inspired to write a routine
which sends Pascal strings (CTCPStreamForDoc::SendPString)
* added implementation of Telnet TERMINAL-TYPE protocol
(albeit only with UNKNOWN terminal)
* added commands to send the standard Telnet NVT commands
(Synch, Break, IP, etc.)
* made the debugging codes a permanent feature
* implemented Telnet settings dialog box
* added icons to DemoTelnet application & settings document
* implemented Telnet EraseChar & EraseLine commands
1.0d10 (20 July 93)
* modified CTCPDriver.cp to reflect the new Apple standard for
GetMyIPAddr.h type names (i.e., GetAddrParamBlock instead of
my definition of IPParamBlock) (BRB)
* added “dnr.h” file with full prototypes for functions in dnr.cp (BRB)
* removed inherited reference in CTCPSessionDoc::Dispose (BRB)
* removed HLock calls in CTCPResolver::ITCPResolver and
CTCPStream::ProcessNotify (BRB)
* added code to check for Hosts file in system folder (BRB)
* moved SendBfrCpy, SendChar, SendCString, SendPString from
CTCPStreamForDoc to CTCPStream; added SendBfrNoCpy
* modified CTCPAsyncCall::Dispatch so that disposing the data sent
was optional
1.0d11 (19 August 93)
* added several features to DemoTelnet to support add-on applications
* DemoTelnet: fixed bug in CTelnetSettingsDLOG which caused
application to fail continously when Close (Cmd-W) was used
* DemoTelnet: cursor is now always visible when the terminal is
no longer the gopher
* changed CTCPSessionDoc::AutoTitle to incorporate display of filename
and hostname; also to read strings from STR# resources
* TCPAsync.asm: several minor optimizations
* CTCPAsyncCall, CTCPStream: optimized code in several locations,
avoiding method lookups whenever possible in the ProcessNetEvents sequence
(especially for TCPNoCopyRcv operations)
* revised auto-receive configuration to permit multiple TCPNoCopyRcv
commands to be issued simultaneously, with configurable RDS sizes
* revised appearance of source files, with better descriptions of some
function parameters
* separated DemoTelnet’s TerminalPane into separate library, and released
it to FTP sites independent of TurboTCP
1.0b1 (10 September 93)
* split CTelnetDoc into CTelnetInterpreter and CTelnetTerminal to support
Telnet protocol with and without terminal operation; included
CTelnetInterpreter as part of standard TurboTCP
* renamed some source files in DemoTelnet
* added safety check code in CTCPSessionDoc::AutoTitle
* prevented DemoTelnet from opening wrong file types on open
* moved the code to create a MacTCP stream from CTCPStream::ITCPStream
to OpenConnection to improve stability under certain debugging conditions
* fixed bug in CTCPStream which occurred when a stream was disposed with
a pending PassiveOpen or ActiveOpen call; previously, the stream would go
into an endless loop waiting for the call to be completed
* modified CTCPSessionDoc::HandleClosing to induce a TCPClose call when
a remote close occurs (even if the goAwayOnClose flag is off)
1.0b2 (26 September 93)
* now ignores “connectionDoesntExist” messages when issuing a TCPClose command
* wrote near-final documentation
1.0b3 (11 October 93)
* renamed DemoTelnet to MiniTelnet, created separate version history file
* now ignores “connectionClosing” errors when issuing a TCPClose command
* also ignores “connectionClosing & connectionDoesntExist” errors when responding
to completion of TCPNoCopyRcv commands
* forced TCPStream objects to be locked at all times, preventing ASR notification
from occurring during memory shuffles
* removed hard-coded references to data structure sizes
* corrected documentation for CTCPAsyncCall::Dispose (no longer disposes of next in chain)
* changed /* comments to //
* replaced GetNotifLinks (global) with CTCPDriver::GetNotifLink (protected method), which
reads a single notification link (done to reduce time spent with interrupts disabled)
* moved global variables (except gTCPDriver) to static class variables of CTCPDriver
* changed notification links to be a part of CTCPDriver (ProcessNetEvents, etc.);
improved documentation of this feature
* fixed bug in CTelnetInterpreter that caused it to read high-ASCII characters (≥0xA0)
as control characters and hang
* changed CTCPStream::ITCPStream to use TCL exceptions mechanism
* CTCPDriver now enforces DNR’s limit of 8 simultaneous calls
* converted some #define’s to enum’s
1.0b4 (19 October 93)
* slight changes in documentation
* first public beta release
1.0b5 (25 October 93)
* changed methods in .asm files to non-object procedures; done for compatibility with
SC++ (sigh)
* removed static keyword from CTCPStream::NotifyProc definition in source file
* used macro CLASS for forward definitions of TCL objects in header files
* removed file "dnr.cp"; incorporated functionality into CTCPResolverCall.cp;
no longer depends on <AddressXlation.h> or <dnr.h>
* changed sequence of parameters to CTCPSessionDoc::ITCPSessionDoc to be
compatible with CDocument::IDocument (printable & rcvBufferSize switched)
* #ifdef __cplusplus / extern "C" / #endif constructs added for compatibility
with Symantec C++
* documentation changed to reflect the typical use of CTCPStream (in the subclass
CTCPStreamForDoc)
* changed CTCPStream::itsStream & itsResolver to public fields, rather than protected
1.0b6 (21 November 93)
* allows subclasses of CTCPSessionDoc to set window titles without host or filenames
by setting both showHostName and showFileName to FALSE (see AutoTitle)
* moved code to open “Hosts” file from CTCPResolverCall::ITCPResolverCall to OpenResolver
* restructured completion/notification/disposal lists to use Enqueue/Dequeue mechanism;
removed all .asm files (yea!)
* removed CTCPStream::__HandleOpened and __HandleOpenFailed methods
* restructured link between CTCPStream/CTCPResolverCall and CTCPSessionDoc to use
the CCollaborator mechanism for message passing; removed CTCPStreamForDoc
and CTCPResolverForDoc classes
* corrected CTCPApplication::Exit to also call the CApplication::Exit method
1.0b7 (17 December 93)
* eliminated itsSupervisor field from CTCPStream and CTCPResolverCall; both classes
now require the dependent objects to set up the dependency (DependUpon (stream))
* CTCPResolver no longer returns the resolverInUseErr message
* removed CTCPStream::OwnerDied and CTCPResolver::OwnerDied; those using
receive bypass procedures must now call CTCPStream::InstallRcvBypassProc(NULL)
before disposing of the dependent object
* adjusted CTCPSessionDoc to reflect above changes
* receive bypass procedure target type changed from CDirectorOwner to CObject
* CTCPStream::Send, SendBfrCpy, SendBfrNoCpy now ignore attempts to send 0 bytes
* replaced CTCPApplication::Exit with ::Quit method, so that event handlers would still be valid;
added new dialog box describing delay in quitting
* added CTCPStream::BroadcastSafeChange method to allow objects to dispose themselves
* changed CTCPAsyncCall::DispatchNoCopyRcv to issue _asynchronous_ BfrReturn call
* created precompiled headers, cleaned up header dependencies
* improved documentation in headers; each class definition is now proceeded by a definition
of the class’ purpose and relationships to other classes in the library
1.0 final (10 January 94)
* minor documentation changes, no source code changes
1.0.1 (19 January 94)
* corrected minor bug in CTCPResolverCall::OpenResolver
* recompiled MiniTelnet without a certain silly line in Failure() which gauranteed a
MacsBug crash anytime a minor error occurred